package com.wisdytech.ccdserver.bucket.serveice;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wisdytech.ccdserver.bucket.dto.BucketRecordDto;
import com.wisdytech.ccdserver.bucket.dto.BucketTaskDto;
import com.wisdytech.ccdserver.bucket.dto.BucketTenDto;
import com.wisdytech.ccdserver.bucket.dto.MinitorBucketViewDto;
import com.wisdytech.ccdserver.bucket.model.Bucket;
import com.wisdytech.ccdserver.common.dto.FileDto;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.common.bean.MultiResultResponse;
import com.wisdytech.common.bean.UniqueResultResponse;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface IBucketService extends IService<Bucket> {

    UniqueResultResponse<Map<String, Object>> getBucketList(Filter filter) throws Exception;

    UniqueResultResponse PushBuckets(Filter filter) throws Exception;

    void PushBucketsBeatch(Map<String, Object> queryParams, String token, String taskid) throws Exception;

    UniqueResultResponse downloadCcdTemplate(Filter filter) throws Exception;

    UniqueResultResponse getBucketListTen(Filter filter) throws Exception;

    MultiResultResponse getBucketsByPage(Filter filter) throws Exception;

    BucketTenDto getBucketsByPages(Filter filter) throws Exception;

    UniqueResultResponse getBucketsByName(Filter filter) throws Exception;

    UniqueResultResponse getDirectorys(Filter filter) throws Exception;

    UniqueResultResponse getImageUrl(Filter filter) throws Exception;

    InputStream getImage(Filter filter) throws Exception;

    UniqueResultResponse getImageResult(Filter filter) throws Exception;

    UniqueResultResponse manualOperationBucketTask(Filter filter);

    void deleteByTaskId(List<BucketRecordDto> bucketRecordDtos);

    MinitorBucketViewDto searchCountBucketByBucket(BucketTaskDto bucketTaskDto);

    IPage<FileDto> exportBucketsByPage(Filter filter, int rowLimit) throws Exception;
}
